資訊處理流程 | 生成 | 收集 | 儲存 | 使用 |
---|---|---|---|---|
Zabbix Agent | ✓ | ✓ | ||
Zabbix | ✓ | ✓ | ✓ | ✓ |
Zabbix 是一款開源的系統監控工具,不僅涵蓋資料採集、收集、呈現及告警等完整功能,且除了大家熟悉的服務和伺服器監控外,還可用於監控網路設備。作為本次系列中最資深的監控工具,Zabbix 的創立可追溯至 1998 年,當時 Alexei Vladishev 在評估系統監控工具時,發現市面上的產品不僅購買成本高,維護成本也高得嚇人。於是,他開始開發 Zabbix,並在 2001 年推出 Zabbix 1.0 Alpha 1 版。目前最新的 6.4 版於 2023 年 5 月發布,但它的重大安全性更新將於 2023 年 12 月 31 日結束。如有需要,可選擇 6.0 LTS 版,重大安全性更新將持續到 2027 年 2 月 28 日,詳細說明可參考官網的 Zabbix Life Cycle & Release Policy。
Zabbix 主要是透過 Server-Client 架構收集與處理資料:由 Client(Agent)負責收集,然後回傳給 Server 儲存。其主要元件包括:
Zabbix 架構圖,圖片來源:scmGalaxy
雖然通常會形容 Zabbix 為 Server-Client 架構,但實際上可以只配置 Zabbix Server,只由 Server 發送 Request 進行監控,達到 Agent Less 的模式。
Web interface 不僅可檢視收集資料,還可設計 Dashboard。但如果同時有其他數據源也想統一呈現的話,可以搭配也支援查詢 Zabbix 的 Grafana 使用,在 Lab 中會示範如何連接 Zabbix Data Source。
Host 是 Zabbix 中被監控的對象,通常代表一台實際的伺服器、網路裝置,或是其他任何需要監控的設備和服務。每個 Host 可以有多個監控項目(Item),並且可以設定多個 Trigger、圖表、Web Scenario 等。
此為 Zabbix server 的 Host 設定,用於監控 Zabbix server 自身,使用了「Linux by Zabbix agent Template」跟「Zabbix server health」兩個 Template
可同時監控多個 Host
Template 用於 Zabbix 中以標準化的方式監控多個 Hosts。一個 Template 可以定義多個監控項目(Item)、Trigger、圖表和其他相關的監控設置。當有多個相似的 Host 時,可以直接套用 Template 確保所有的監控設置都是一致的。當 Template 更新時,所有使用該 Template 的 Hosts 也會自動更新監控項目等設定。
Template 是 Zabbix 中快速設定監控不同設備或服務的關鍵,除了內建的 Template 外,使用者也可以自行建立,或是從 Monitoring and Integration Solutions 下載其他人或產品公司分享的 Template 或相容的監控工具。
Linux by Zabbix agent Template
Linux by Zabbix agent Template 的監控項目
Group 是 Zabbix 中用來分類 Host 的概念,一個 Host 可以屬於多個 Group,但至少需有一個 Group。當有多個相似的 Host 時,可以將它們分類到同一個 Group,方便管理。
此為 Zabbix server 的 Host 設定,被歸類至 Zabbix servers
這個 Group
Web Scenario 是 Zabbix 中用來模擬、監控和檢查從使用者的角度來看的 Web 服務的可用性和性能。透過 Web Scenario,可以模擬一系列的 HTTP 或 HTTPS 請求和相應的動作,例如登入 Web 應用程式、點擊連結等,用以確認 Web 服務是否正常運作,並在發生問題時迅速收到通知。
使用 Web Scenario 收集到的資料
範例程式碼:12-zabbix
啟動所有服務
docker-compose up -d
前置設定
進入 Zabbix Server Container 啟動 Zabbix Agent
docker exec -it -u root zabbix-server-mysql /bin/bash
service zabbix-agent start
CTRL + D # 離開 Container
進入 Grafana Container 安裝 Zabbix Data Source Plugin
安裝 Zapix Data Source Plugin
docker exec -it grafana /bin/bash
grafana-cli plugins install alexanderzobnin-zabbix-app
CTRL + D # 離開 Container
重新啟動 Grafana 讓 Plugin 生效
docker-compose restart grafana
檢視服務
Admin/zabbix
,如果出現 DB 相關的錯誤訊息,請等待一段時間admin/admin
Zabbix servers
,需至 Data Source > Zabbix 點擊最最下面的 Save & Test
,更新快取後即可看到其他 Group參考「新增監控項目」章節,建立新的監控項目
關閉所有服務
docker-compose down
於左側 Monitoring 選單的 Hosts 頁籤中或左側 Data Collection 選單的 Hosts 頁籤中,點擊右上的 Create host 按鈕
新增 zabbix-agent Host,如圖設定 Host name、Templates、Host groups,Interfaces 必須設定使用 DNS 並輸入 DNS name 為 zabbix-agent
,其他預設即可
設定完成後稍待一下,可於 Monitoring 選單的 Hosts 頁籤中看到 zabbix-agent 的 Availability
狀態 ICON 會變為綠色,表示 Zabbix Server 已經和 Zabbix Agent 連接成功
於左側 Monitoring 選單的 Hosts 頁籤中或左側 Data Collection 選單的 Hosts 頁籤中,點擊右上的 Create host 按鈕
新增 fastapi Host,Host groups 選擇 Application,其他預設即可
於左側 Data Collection 選單的 Hosts 頁籤中,點擊 fastapi Host 的 Web
點擊右上的 Create web scenario 按鈕,新增 Web Scenario
設定 Web Scenario 的基礎設定,如圖設定 Name,其他預設即可
進入 Step 頁籤,點擊 Add
設定 Step 的基礎設定,如圖設定 Name、URL、Required status codes,其他預設即可
可再新增其他 Step,如圖所示,新增完點擊 Add 或 Update 儲存
設定完成後稍待一下,可於 Monitoring 選單的 Hosts 頁籤中至 fastapi 的 Latest data 查看執行 Web Scenario 所收集的數據
Zabbix 提供了從監控資料的生成、收集、儲存到使用的全面解決方案。透過 Agent 和各式 Template 的搭配,使用者可以快速建立各種監控項目。如果內建的 Template 無法滿足需求,還可以參考 Monitoring and Integration Solutions 上由第三方提供的更多 Template 與監控工具。此外,Web Scenario 功能擴大了監控範疇,不僅可以監控 Server 的狀態,還能根據實際業務流程監控自行開發的 Web 服務。
至此,關於指標的概念及各種工具的介紹就告一段落,下一篇我們將開始探討日誌 Logs 的概念與工具。